Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

node-wget-fetch

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-wget-fetch

Ultra simple async retrieval of resources or remote files over http or https, an cli tool, and convenience wrapper of node-fetch, and a seamless retry ability

  • 1.1.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
288
increased by2.13%
Maintainers
1
Weekly downloads
 
Created
Source

node-wget-fetch

NPM

Dependencies Status Node.js CI codecov MaintainabilityRelease

Ultra simple async retrieval of resources or remote files over http or https, an cli tool, convenience wrapper of node-fetch, and a seamless retry ability.

Install

npm install node-wget-fetch

Basic API

fetching(url, action = destination | response_body_type | options [, options])

  • url A string representing an absolute url

  • action Save to destination or body action on response type or use for options

    response type can be:

    • 'header' for all response headers - raw()
    • 'object' for the response object - no post/pre processing
    • 'array' for arrayBuffer()
    • 'buffer' for buffer()
    • 'blob' for blob()
    • 'json' for json()
    • 'text' for text()
    • 'stream' for NodeJs.readableStream()

    default is 'download'

  • options Standard Request/Fetch Options for the HTTP(S) request

  • Returns: Promise of response body of above type, only if status text is OK.

  • The response type will set Fetch/Request header 'Content-Type' as:

    • 'json' = 'application/json; charset=utf-8'
    • 'text' = 'application/x-www-form-urlencoded'
    • 'blob' = 'application/octet'
    • 'buffer' = 'application/octet'
    • 'header' = 'text/plain'
    • 'object' = 'application/json; charset=utf-8'
    • 'stream' = 'application/octet'
    • 'array' = 'application/octet'

To customize retry Fetch operation, update in options.

retry:
{
    retries: 1, // The maximum amount of times to retry the operation.
    factor: 2, //The exponential factor to use.
    minTimeout: 1000, // The number of milliseconds before starting the first retry.
    maxTimeout: 'Infinity', // The maximum number of milliseconds between two retries.
    randomize: false, // Randomizes the timeouts by multiplying with a factor between 1 to 2.
 }

Convenience Request Methods

import { get, head, options } from 'node-wget-fetch';

get(url, response_body_type [, options]);

head(url, response_body_type [, options]);

options(url, response_body_type [, options);]

For simply submitting body data

Note: body data is passed in, handled by URLSearchParams class, if String or Object.

import { post, put, patch, delete } from 'node-wget-fetch';

post(url, body, response_body_type [, options]);

put(url, body, response_body_type [, options]);

patch(url, body, response_body_type [, options]);

delete(url, body, response_body_type [, options]);

Bring in or access node-fetch directly

fetching.fetch(url [, options]);

Usage

// CommonJS
const fetching = require('node-wget-fetch');
const wget = fetching.wget;

// ESM 12+
import { wget } from 'node-wget-fetch';

wget(url) // retrieve to current directory
    .then((info) => {});
    .catch((error) => {});

wget(url, { headers:  { Accept: '*/*' } }) // with optional `Fetch` options
    .then((info) => {});
    .catch((error) => {});

wget(url, destination_folder_or_filename, { timeout: 2000 } )  // with optional `Fetch` options
    .then((info) => {});
    .catch((error) => {});


fetching(url, responseType, // *responseType* can be:
    // 'header' for all response headers - raw()
    // 'object' for the response object - no post/pre processing
    // 'array' for arrayBuffer()
    // 'buffer' for buffer()
    // 'blob' for blob()
    // 'json' for json()
    // 'text' for text()
    // 'stream' for NodeJs.readableStream()
    // default is 'download'
    { headers: {Accept: '*/*' } }) // with optional `Fetch` options
    )
    .then((processedResponse) => {
        // No file is retrieved or saved,
        // an resolved `Fetch` response body of above type is returned
    });
    .catch((error) => {});

Examples

import { wget } from 'node-wget-fetch';

wget('https://raw.github.com/techno-express/node-wget-fetch/master/angleman.png'); // angleman.png saved to current folder

wget('https://raw.github.com/techno-express/node-wget-fetch/master/package.json',
    '/tmp/', // destination path or path with filename, default is ./
    { timeout: 2000 } // Any `Fetch` Options, this sets duration to wait for request in milliseconds, default 0
    )
    .then((info) => {
        console.log('--- headers:'); // display all response headers
        console.log(info.headers);
        console.log('--- file path:'); // display file retrieved info
        console.log(info.filepath);
        console.log('--- file size retrieved:');
        console.log(info.fileSize);
        console.log('--- Do file retrieved match "Content-Length"?:');
        console.log(info.fileSizeMatch);
    })
    .catch((error) => {
        console.log('--- error:');
        console.log(error); // error encountered
    });
);

CLI

Install:

npm install -g node-wget-fetch

Use:

Usage: wget [options] <url>

Or

Usage: fetch [options] <url>

Ultra simple async retrieval of remote files over http or https

Options:

  -h, --help                        output usage information
  -v, --version                     output version number
  -d, --destination <folder>        specify download destination

Usage:

# Download file
$ wget https://github.com/NodeOS/NodeOS/archive/master.zip
$ fetch https://github.com/NodeOS/NodeOS/archive/master.zip

# Download file to location
$ wget https://github.com/NodeOS/NodeOS/archive/master.zip -d path/to/here/
$ fetch https://github.com/NodeOS/NodeOS/archive/master.zip -d path/to/here/

License: MIT

Keywords

FAQs

Package last updated on 22 Apr 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc